# !/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time      :2022/8/9 0009 0:20
# @Author    :jiaxuesong

'''
导包  smtplib
创建发送邮件类
    定义初始化方法
        定义发件人
        定义收件人
        定义发送主题
        定义邮件服务器
        定义用户名密码

    定义添加附件方法
        # 组装邮件内容和标题
        # 获取测试报告目录
        # 获取目录下所有html内容
        # 组装邮件内容和标题
        # 添加附件内容
        # 添加文件的文本内容

    定义发送类
        登录并发送邮件
        链接smtp服务器
        登陆邮箱
        设置邮件发件人、收件人、邮件内容

'''

# 导包# smtplib
import smtplib
import time
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
# 创建发送邮件类
class SendEmail(object):
# 定义初始化方法
    def __init__(self):
# 定义发件人
        self.sender = '1033353613@qq.com'
# 定义收件人
        self.receiver = '1033353613@qq.com'
# 定义发送主题
        t = time.strftime('%Y_%m_%d_%H_%M_%S', time.localtime())
        self.title = '接口自动化测试报告' + t
# 定义邮件服务器
        self.smtpserver = 'smtp.qq.com'
# 定义用户名密码
        self.username = '1033353613@qq.com'
        self.password = 'kptqxaqnhsmpbdjc'
#
# 定义添加附件方法
    def email_connect(self, file):
        with open(file, 'rb') as f:
            mail_body = f.read()
            self.msg = MIMEMultipart()
# # 组装邮件内容和标题
# # 获取测试报告目录
# # 获取目录下所有html内容
# # 组装邮件内容和标题
# # 添加附件内容
# # 添加文件的文本内容
            att = MIMEText(mail_body, 'plain', 'UTF-8')
            att['Content-Type'] = 'application/octet-stream'
            att['Content-Disposition'] = 'attachment;filename = report.html'
            self.msg.attach(att)

            content = '自动化测试报告,详情请查看附件'
            self.msg.attach(MIMEText(content, 'plain', 'UTF-8'))
            self.msg['Subject'] = Header(self.title, 'UTF-8')
            self.msg['Form'] = self.sender
            self.msg['To'] = '.'.join(self.receiver)
#
# 定义发送类
    def send(self, file):
# 登录并发送邮件
# 链接smtp服务器
# 登陆邮箱
# 设置邮件发件人、收件人、邮件内容
        self.email_connect(file)
        try:
            # 实例化smtplib类
            smtp = smtplib.SMTP()
            # 链接服务器
            smtp.connect(self.smtpserver)
            # 登录邮箱
            smtp.login(self.username, self.password)
            # 设置邮件发件人、收件人、邮件内容
            smtp.sendmail(self.sender, self.receiver, self.msg.as_string())
        except Exception as msg:
            print(f'邮件发送失败!!!{msg}')
        else:
            print('邮件发送成功！！！')
        finally:
            smtp.quit()





